﻿Public Class KOKoshi
    Inherits ObjektKO
    Public Sub New(ByVal Spieler As Integer)
        MyBase.New(Spieler, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub
    Public Sub New(ByVal Spieler As Integer, ByVal Gabefuellstand As Integer, ByVal Gabenart As Gabemodi, ByVal neuSternkosten As Integer)
        MyBase.New(Spieler, Gabefuellstand, Gabenart, neuSternkosten, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub

    Private Sub StartwerteLaden()
        KOID = "KOSHI"
        Armee = Armeen.BT.ToString
        Musik = "Koshi"
        Bild = GetBildID()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
                Gaben(1) = Gaben(0)
            Case CommanderWarsGameModi.AdvanceWars2
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 5
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDS
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 5
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDC
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 6
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case Else
                Sternkosten = 1000
                Gabekosten = 3
                SpezialgabeKosten = 5
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
        End Select
        KORange = 5
        KOname = Objektverwalter.GetKO(Bild).KOBeschreibung.Name

        KOLaden()
    End Sub

    Public Overrides Sub Gabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        Glueck = 30
        Pech = -15
        SpriteVertauschung = True
        If OhneFunktion = False Then
            SetEnemyLuckandCurse(15, -30)
            KeinGabeEinsatz()
            BackbufferSpiel.AddAnimation("SCREENFLASH", 2, New Point, True, ObjektSpielfeld.TopLayer)
        End If
        GabeEingesetzt()
    End Sub
    Public Overrides Function GetPowerScript(ByVal Power As Integer) As KOCustom.Power.PowerScript
        Select Case Power
            Case 1
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectNoPower())
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectSetEnemyLuckandCurse(15, -30))
                Return P
            Case 2
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectSetEnemyVisionRange(1))
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectActiveFogOfWar(1))
                Return P
            Case Else
                Return Nothing
        End Select
    End Function
    Public Overrides Sub KOLaden()
        Glueck = 5
        Pech = 0
        OffensivStaerke = Nothing
        DeffensivStaerke = Nothing
        GabeleistenVerstecker = True
        FallenAngriff = False
        KeineFondsInfos = True
        SpriteVertauschung = False
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWarsDC Then
            'Dafuer sinkt die Feuerkraft aber drastisch
            WetterReichweitenbonus(0) = 0
        End If
    End Sub

    Public Overrides Sub SpezialGabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWars Then
            Glueck = 30
            Pech = -15


            SpriteVertauschung = True
            If OhneFunktion = False Then
                SetEnemyLuckandCurse(15, -30)
                KeinGabeEinsatz()
                BackbufferSpiel.AddAnimation("SCREENFLASH", 2, New Point, True, ObjektSpielfeld.TopLayer)
            End If
            GabeEingesetzt()
        Else


            OffensivStaerke = New Feuerkrafttabelle110
            DeffensivStaerke = New Feuerkrafttabelle110
            FallenAngriff = True
            If OhneFunktion = False Then
                SetEnemyVisionRange(1)
                ActivateKriegsnebel(1)
                BackbufferSpiel.AddAnimation("SCREENFLASH", 2, New Point, True, ObjektSpielfeld.TopLayer)
            End If
            GabeEingesetzt()
        End If
    End Sub

    Public Overrides Sub KOFrame()
        'Wir machen nichts
    End Sub
End Class

Public Class KOBeschreibungKoshi
    Inherits ObjektKOBeschreibung
    Public Sub New()
        Name = "Koshi"
        Fein = "Computerspiele"
        Nein = "Brettspiele"
        Beschreibung = New String() {"Ein Computerfreak der", "auf Verwirrung setzt.", "Er meint zufaellige Daten bringen", "auch nichts."}
        Stil = New String() {"Seine Gabeleiste und Fonds sind", "vor Gegnern versteckt."}
        Gabebeschreibung = New String() {"Glueck und Pech aller Spieler werden", "veraendert und Gegner koennen", "keine Gabe einsetzen."}
        SpezialgabeBeschreibung = New String() {"Es herrscht Kriegsnebel und", "Gegner koennen nur ein Feld weit", "sehen. Laufen seine Truppen in eine", "Falle greifen sie an wenn sie koennen."}
        GabeKosten = 4
        Spezialgabekosten = 4
        Gaben = New String() {"Memoriespiel", "Blinde Taktik"}
        Synergie = New Decimal() {1, 1, 0.5#, 1}
        KONamen = New String() {"CARRIE", "OZZY", "WALTER", "ADAM"}
        Doppelgabenamen = New String() {"Otaku Angriff", "Licht An", "Doppel-Gabe", "Computerfreaks"}
        Gabesaetze = New String() {"Anonymitaet vergibt nicht und ich auch nicht." _
                                  , "Ich habe diese Strategie gerade aus dem Internet runtergeladen." _
                                  , "Glaub es. Meine Truppen besitzen Nijafaehigkeiten. Glaube es!" _
                                  , "Super Kampfmodus initialisiert." _
                                  , "Jetzt seht ihr mich! Gleich nicht mehr." _
                                  , "LOL."} 'Now you see me, soon you won't.
        Siegsaetze = New String() {"Moechtest du zurueck zum Noobserver." _
                                , "Krieg ist ein Spiel. Spielen ist mein Leben. Das ist es was wir tun." _
                                , "Ich gewinne. Du verlierst. Wo ist mein Internet?"}
        Tauschsaetze = New String() {"Wieder mein Zug? Aber ich habe --." _
                                    , "Und wir sind weg. Jippie!"}
        Doppelgabesaetze = New DoppelGabesatz() {New DoppelGabesatz("KOSHI", "CARRIE", "Oh! Carrie in deiner Naehe fuehle ich mich so sicher.", "THX Koshi.") _
                                              , New DoppelGabesatz("CARRIE", "KOSHI", "Schau der Schluessel zum Sieg, ist wie eine Gut geoelte Maschine...", "Was? Nein! Wie?...Was? Nein!") _
                                              , New DoppelGabesatz("KOSHI", "OZZY", "Ozzy! Nach allem moechte ich deiner Band beitreten! Kann ich?", "Du spielst die Lufttrompete. Eigentlich...eine Trompete? Hmmm.") _
                                              , New DoppelGabesatz("OZZY", "KOSHI", "Sehr schwer einschaetzbar. Koshi du bist ein Meister des Wahnsinn...!", "Eher """"Meister des Internets"""" richtig?") _
                                              , New DoppelGabesatz("ADAM", "KOSHI", "Strategie analysiert...", "ihr habt keine Chance.") _
                                              , New DoppelGabesatz("KOSHI", "ADAM", "Computer hochgefahren. Bucks beseitigt", "Programm initialisiert. Die Nerds sind da!")}
        Niederlagesaetze = New String() {"Ich habe mich selbst verwirrt.", _
                                     "Ihr habt meine Taktik durchschaut?"}
    End Sub
End Class
